 #ifndef REPOSITORIO_HEADER
#define REPOSITORIO_HEADER

#include <list>

template <class T>
class Repositorio
{
	public:
		Repositorio();
		~Repositorio();
		void agregar(T* elem);
		list<T*>& getElementos();

	private:
		list<T*> repo;
};

template <class T>
Repositorio<T>::Repositorio()
{
}

template <class T>
Repositorio<T>::~Repositorio()
{
  for (typename list<T*>::iterator it = repo.begin(); it != repo.end(); it++)
  {
    delete *it;
  }
}

template <class T>
void Repositorio<T>::agregar(T* elem)
{
  repo.push_back(elem);
}

template <class T>
list<T*>& Repositorio<T>::getElementos()
{
  return repo;
}
#endif // REPOSITORIO_HEADER
